-- 元类
button = {buttonID = nil}

-- 派生类的方法 new
function button:new (o)
  o = o or {}
  setmetatable(o, self)
  self.__index = self
  o.buttonID = o.buttonID or "button"
  return o
end

-- 派生类的方法 printArea
function button:printArea ()
  print("ss",self.area)
end

r = Rectangle:new(nil,10,20)

print(r.length)
r:printArea()